package com.platform.qujia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.qujia.param.request.PhysicalCardPosRechargeReq;
import com.platform.qujia.param.request.TradeReverseScanPayParameter;
import com.platform.qujia.pojo.CardBatch;
import com.platform.qujia.pojo.PayOrder;
import com.platform.qujia.pojo.PhysicalCard;
import com.platform.qujia.pojo.PhysicalCardBalance;
import com.platform.qujia.pojo.dto.PhysicalCardIntegralDto;
import com.platform.qujia.pojo.dto.PhysicalCardOrderDto;
import com.platform.qujia.pojo.dto.ScanOrderDTO;
import com.platform.qujia.pojo.vo.CardRechargeOrderPrintVO;
import com.platform.qujia.utils.ResultData;

import java.util.List;
import java.util.Map;

/**
 * @date 2023/12/7
 */
public interface PhysicalCardService extends IService<PhysicalCard> {
    ScanOrderDTO physicalCardScanRecharge(PhysicalCardPosRechargeReq req);

    CardRechargeOrderPrintVO queryPhysicalCardScanOrder(TradeReverseScanPayParameter req);

    String callbackSxf(Map<String,Object> request);

    String callbackYh(Map<String,Object> request);

    void physicalCardBindAppUser(String physicalCardNo, String userPhone, Integer appUserId);

    List<PhysicalCard> selectByPhysicalCardList(PhysicalCard physicalCard);

    PhysicalCard selectByPhysicalCardByNo(String physicalCardNo);

    CardBatch selectCardBatchById(String batchId);

    // 实体卡产生积分
    void physicalCardIntegral(PhysicalCardIntegralDto physicalCardIntegralDto);

    /**实体卡消费接口*/
    PayOrder physicalCardConsumption(PhysicalCardOrderDto physicalCardOrderDto);

    /**
     * 判断是否是定额卡
     * */
    boolean physicalCardType(PhysicalCard physicalCard);

    /**
     * 修改实体卡
     * */
    int updatePhysicalCard(PhysicalCard physicalCard);
}
